package com.splic.product.mapper;

import java.util.List;

import com.github.pagehelper.Page;
import com.splic.product.domain.UserSubRecord;
import com.splic.product.dto.UserSubRecordDto;
import org.apache.ibatis.annotations.Param;

/**
 * 用户订阅记录Mapper接口
 * 
 * @author singe
 * @date 2022-01-04
 */
public interface UserSubRecordMapper 
{
    /**
     * 查询用户订阅记录
     * 
     * @param id 用户订阅记录主键
     * @return 用户订阅记录
     */
    public UserSubRecordDto selectUserSubRecordById(Long id);

    /**
     * 查询用户订阅记录列表
     * 
     * @param userSubRecord 用户订阅记录
     * @return 用户订阅记录集合
     */
    public Page<UserSubRecord> selectUserSubRecordList(UserSubRecord userSubRecord);

    /**
     * 新增用户订阅记录
     * 
     * @param userSubRecord 用户订阅记录
     * @return 结果
     */
    public int insert(UserSubRecord userSubRecord);

    /**
     * 修改用户订阅记录
     * 
     * @param userSubRecord 用户订阅记录
     * @return 结果
     */
    public int update(UserSubRecord userSubRecord);

    /**
     * 删除用户订阅记录
     *
     * @param id 用户订阅记录主键
     * @return 结果
     */
    public int deleteById(Long id);


    List<UserSubRecord> queryUserSubListByGreaterId(@Param("offsetId") Long offsetId, @Param("limitNum") int limitNum);

    void clearUserSubStatusById(Long id);

    UserSubRecord selectLastTime(@Param("userId") Long userId, @Param("productId") Long productId, @Param("goodTypeId") Long goodTypeId);
}
